Channel estimation for millimeter-wave communication/data link and the corresponding codebook design

ABSTRACT

The channel estimation method for millimeter-wave communication includes virtual multipath acquisition and sparse reconstruction. In the virtual multipath acquisition stage, instead of searching the real multipath components (MPCs), the virtual representation of the real MPCs is derived, and the hierarchical search is utilized to acquire the virtual MPCs based on a normal limited-resolution codebook. In the sparse reconstruction stage, the real MPCs are reconstructed from the virtual MPCs acquired in the virtual multipath acquisition stage. An enhanced sub-array scheme is used to design a hierarchical codebook under a strict constant-modulus constraint. The designed codebook can be used for both analog and hybrid beamforming/combining devices. The training overhead of channel estimation and the complexity of the search are significantly reduced, and the size of the dictionary matrix is greatly reduced by exploiting the results of the virtual multipath acquisition.

FIELD OF THE INVENTION

The invention belongs to the technical field of millimeter-wave (mmWave) communication. Specifically, the invention refers to channel estimation for mmWave communication based on virtual multipath acquisition and sparse reconstruction.

DESCRIPTION OF RELATED ART

Recently, with the rapid development of wireless communication technology, wireless communication has played a critical role in our lives. However, due to the increasing bandwidth requirement of wireless communication, spectrum resources in low frequency band are becoming increasingly scarce. The mmWave communication has drawn global attention in the past few years because of its abundant frequency resources.

However, mmWave communication is also facing sonic technical challenges. According to the classic Fries formula, the mmWave band has an extremely high path loss compared to low frequency band. To bridge the link budget gap due to the path loss in the mmWave band, and meanwhile to fulfil the low hardware cost requirement, analog beamforming/combining is usually preferred, wherein all the antennas share a single radio-frequency (RF) chain and have constant-modulus (CM) constraint on their weights. Meanwhile, a hybrid analog/digital preceding/combining structure has also been proposed to realize multi-stream/multiuser transmission, wherein a small number of RF chains are tied to a large antenna array. Subject to the beamforming/combining structures, the conventional channel estimation methods developed for classic multiple-input multiple-output (MIMO) communications is rather inefficient for mmWave communication due to high pilot overhead as well as high computational cost. Instead, two approaches, i.e., hierarchical search and compressed sensing (CS), are exploited in general to acquire necessary channel state information (CSI) with affordable overhead.

To enable hierarchical search, a coarse sub-codebook may be defined with a small number of coarse sectors (or low-resolution beams) covering the intended angle range, while a fine sub-codebook may be defined with a large number of fine (or high-resolution) beams covering the same intended angle range. A coarse sector may have the same coverage as that of multiple fine beams together. A divide-and-conquer search may then be carried out across the hierarchical codebook, by finding the best sector first on the low-resolution codebook level, and then finding the best beam on the high-resolution codebook level, while the best high-resolution beam is encapsulated in the best sector. The hierarchical search method is time efficient and can achieve a high detection rate to acquire a multipath component (MPC). However, it is usually limited to acquisition of only one single MPC due to the limited angle resolution of the codebook.

Since mmWave channel is generally sparse in the angle/spatial domain, the CS approach is also an attractive candidate. Different from the hierarchical search method, the CS based approaches are open-looped, which means the pilot overhead does not increase in the multi-user case. However, the performance of the CS based schemes is highly dependent on the number of measurements. To achieve satisfactory estimation performance, the training overhead is in fact considerable. Therefore, Alkhateeb et al. proposed an adaptive CS (ACS) method, wherein a hierarchical codebook was also designed to reduce the required number of measurements. Although the ACS method can reduce the overhead to some extent compared with the pure CS method, by exploiting an iterative training approach analogous to the hierarchical search, it requires a moderate to large number of RF chains, which may make it less attractive for devices with only a few RF chains or with an analog beam forming/combining structure.

SUMMARY OF THE INVENTION

To achieve fast and accurate channel estimation for mmWave communication, this invention provides a virtual multipath acquisition and sparse reconstruction (VMA-SR) method, which can be used for both the analog and hybrid beamforming/combining structures.

The proposed VMA-SR approach can be divided into two stages: virtual multipath acquisition (VMA) and sparse reconstruction (SR).

In the first stage, instead of searching the real MPCs, this invention derives the virtual representation of the real MPCs, and exploits the hierarchical search to acquire the virtual MPCs based on a normal limited-resolution codebook.

In this stage, the original L real MPCs are represented by 4L virtual MPCs, and most importantly, the transmitter (Rx) and receiver (Tx) steeling vectors of the 4 virtual MPCs, corresponding to one single real MPC, are two adjacent basis vectors within the angle of arrival (AoA) and the angle of departure (AoD) domains, respectively.

In the second stage, the real MPCs are reconstructed from the virtual MPCs acquired in the first stage.

In this SR stage, let the estimated cos (AoA) and the estimated cos (AoD) of the l-th MPC be denoted as {circumflex over (θ)}_(l) and {circumflex over (ψ)}_(l), respectively, then the uncertainty range of the l-th cos (AoA) and the l-th cos (AoD) should be

${\left\lbrack {{{\hat{\theta}}_{} - \frac{2}{N_{r}}},{{\hat{\theta}}_{} + \frac{2}{N_{r}}}} \right\rbrack \mspace{14mu} {{and}\mspace{14mu}\left\lbrack {{{\hat{\psi}}_{} - \frac{2}{N_{t}}},{{\hat{\psi}}_{} + \frac{2}{N_{t}}}} \right\rbrack}},$

respectively, where N_(r) and N_(t) are the numbers of antennas at the Rx and Tx, respectively. By sampling the angle range

$\left\lbrack {{{\hat{\theta}}_{} - \frac{2}{N_{r}}},{{\hat{\theta}}_{} + \frac{2}{N_{r}}}} \right\rbrack$

with an interval 2/(KN_(t)) and the angle range

$\left\lbrack {{{\hat{\psi}}_{} - \frac{2}{N_{t}}},{{\hat{\psi}}_{} + \frac{2}{N_{t}}}} \right\rbrack$

with an interval 2/(KN_(t)), respectively, where K is the over-sampling factor, this invention can obtain the reduced Rx and Tx candidate antenna weight vectors (AWVs) Ā_(r) and Ā_(t).

Then the channel matrix H can be approximately expressed as H=Ā_(r)ΣĀ_(t) ^(H), where Σ is a sparse matrix with every column and every row thereof having at most one nonzero element and with the nonzero elements corresponding to the channel coefficients λ_(l), and the superscript H denotes conjugate transpose.

Then the virtual channel obtained through the VMA stage can be used to establish a sparse reconstruction problem to solve the real MPCs.

The sparse reconstruction problem is formulated as follows:

$\underset{\lambda_{},\theta_{},\psi_{}}{minimize}{{{{vec}\left( H_{fd} \right)} - {\left( {{\overset{\_}{A}}_{t}^{*} \otimes {\overset{\_}{A}}_{r}} \right){{vec}(\Sigma)}}}}_{2}$ subject  tovec(Σ)₀ = L,

where H_(fd) denotes the virtual channel matrix obtained through the VMA stage. By solving this problem, such parameters as channel coefficients λ_(l), angles of arrival θ_(l) and angles of departure ψ_(l)(l=1,2, . . . , L) are obtained. Then such parameters can be used to reconstruct the original channel H.

The advantages of the invention are as follows:

(1) In the VMA stage, the virtual MPCs corresponding to a single MPC are all acquired in each search based on the proposed hierarchical search algorithm. As a result, the training overhead of channel estimation and the complexity of the search are significantly reduced.

(2) In the SR stage, the size of the dictionary matrix is greatly reduced by exploiting the results of the VMA stage, significantly reducing the computational complexity.

(3) In the VMA stage, this invention provides an enhanced sub-array scheme to design a hierarchical codebook under a strict CM constraint, which can be used for low complexity phased array. And the designed codebook can be used for both analog and hybrid beamforming/combining devices.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates the Fejér kernel functions for an MPC with AoA=0 and AoD= 1/16 (in the cosine angle domain), where N_(t)=N_(r)=8;

FIG. 2 illustrates the 4 virtual MPCs for a real MPC with AoA=0 and AoD = 1/16 (in the cosine angle domain), where N_(t)=N_(r)=8;

FIG. 3 shows the beam coverage of a hierarchical codebook with 16 antennas;

FIG. 4 illustrates a simplified block diagram of the signal measurement system for the VMA stage of the VMA-SR method according to the present application;

FIG. 5 illustrates the RF phased array of the transmitter of the signal measurement system;

FIG. 6 illustrates the RF phased array of the receiver of the signal measurement system;

FIG. 7 shows the flowchart of a measurement process;

FIG. 8 shows the beam patterns of the proposed enhanced sub-array scheme with a uniform linear array (ULA) codebook, where N=64 ;

FIG. 9 shows the beam patterns of the codewords in the first layer of a uniform planar array (UPA) codebook, where the size of the UPA is 8×8;

FIG. 10 shows the effect of the over-sampling factor K on the detection performance of the proposed VMA-SR approach;

FIG. 11 shows the effect of the over-sampling factor K on the mean squared error (MSE) performance of the proposed VMA-SR approach;

DETAILED DESCRIPTION OF THE INVENTION

The invention will now be further described referring to the attached wings and illustrative examples.

Before the virtual multipath acquisition and sparse reconstruction (VMA-SR) approach of the present application is described, the system model and existing channel estimation methods are first introduced.

A. System Models

Letting s denote a training signal with unit average power, when an analog beamforming/combining structure is adopted at the transmitter (Tx) and receiver (Rx), the received signal y is expressed as

y=√{square root over (P)}w _(r) ^(H) Hw _(t) s+z,   (1)

where P is the average transmission power, w_(r) and w_(t) are Rx and Tx antenna weight vectors (AWVs), respectively, H is the channel matrix, and z is the Gaussian white noise. Let N_(r) and N_(t) denote the numbers of antennas at the Rx and Tx, respectively. Then w_(r) and w_(t) are N_(r)×1 and N_(t)×1 vectors, respectively, with constant modulus (CM) and unit 2-norm, i.e., |w_(r)|=1/√{square root over (N_(r))} and |w_(t)|=1/√{square root over (N_(t))}. In the case that a hybrid beamforming/combining structure is adopted at the Rx and Tx, w_(r) and w_(t) will be the product of a digital beamforming/combining vector and an analog preceding/combining matrix with constant modulus.

It is known that mmWave channels have limited scattering, and multipath components (MPCs) are mainly generated by reflections. Different MPCs have different angles of departure (AoDs) and angles of arrival (AoAs). Without loss of generality, this invention adopts the directional channel model here, which is relevant to the geometry of antenna arrays. When using uniform linear array (ULA) with a half-wavelength antenna space, an mmWave channel can be expressed as

$\begin{matrix} {{H = {\sum\limits_{ = 1}^{L}\; {\lambda_{}{a_{r}\left( \theta_{} \right)}{a_{t}^{H}\left( \psi_{} \right)}}}},} & (2) \end{matrix}$

where λ_(l) is the complex channel coefficient of the l-th path and

${{\left( {\sum\limits_{ = 1}^{L}\; {\lambda_{}}^{2}} \right)} = {N_{r}N_{t}}},$

is the number of MPCs, a_(r)(.) and a_(t) (.) are the Rx and Tx steering vector functions, respectively, defined as

$\begin{matrix} {{{a_{r}(\theta)} = {\frac{1}{\sqrt{N_{r}}}\left\lbrack {e^{j\; {\pi 0\theta}},e^{j\; {\pi 1\theta}},\ldots \mspace{14mu},e^{j\; {\pi {({N_{r} - 1})}}\theta}} \right\rbrack}^{T}},{{a_{t}(\psi)} = {\frac{1}{\sqrt{N_{t}}}\left\lbrack {e^{j\; {\pi 0\psi}},e^{j\; {\pi 1\psi}},\ldots \mspace{14mu},e^{j\; {\pi {({N_{t} - 1})}}\psi}} \right\rbrack}^{T}},} & (3) \end{matrix}$

where θ and ψ are cos (AoD) and cos (AoA), respectively. Specifically, θ_(l) and ψ_(l) are cos (AoD) and cos (AoA) of the l-th path, respectively. Let θ _(l) and ψ _(l) denote the real AoD and AoA of the l-th path, respectively; then we have θ_(l)=cos (θ _(l)) and ψ_(l)=cos (ψ _(l)). Therefore, θ_(l) and areψ_(l) within the range of [−1,1 ]. For convenience, in the rest of this invention, θ_(l) and ψ_(l) are called AoAs and AoDs, respectively. The superscript T denotes transpose.

B. Channel Estimation

To estimate the channel, we need to make some measurements based on the beamforming/combining structure shown in (1): In each measurement, Tx would transmit a training signal with a Tx AWV, while Rx would receive the signal with an Rx AWV. If the conventional least-square (LS) method is adopted to estimate the channel, at least N_(r)N_(t) measurements are needed, which is unaffordable in mmWave communication where N_(r) and N_(t) are large in general. To reduce the pilot overhead, there are two main candidate approaches: the compressed sensing (CS) based method and the hierarchical search method. This invention briefly introduces them for comparison with the proposed approach.

The CS Approach: Based on the signal model in (1), multiple measurements may be made with different Tx AWVs [w_(t1), w_(t2), . . . , w_(tϵ) _(t) ]

W_(t) and Rx AWVs [w_(r1), w_(r2), . . . , w_(rϵ) _(r) ]

W_(r), where ϵ_(r) is the number of the different Tx AWVs and ϵ_(r) is the number of the different Rx AWVs and assuming, without loss of generality, s=1, then

Y=√{square root over (P)}W _(r) ^(H) HW _(t) +Z,   (4)

where Z is the noise matrix. By sampling the AoA/AoD domains with sufficiently high resolution δ, we can obtain

$A_{r} = {\left\lbrack {{a_{r}\left( {{- 1} + \frac{\delta}{2}} \right)},{a_{r}\left( {{- 1} + \frac{3\delta}{2}} \right)},\ldots}\mspace{14mu} \right\rbrack \mspace{14mu} {and}}$ $A_{t} = {\left\lbrack {{a_{t}\left( {{- 1} + \frac{\delta}{2}} \right)},{a_{t}\left( {{- 1} + \frac{3\delta}{2}} \right)},\ldots}\mspace{14mu} \right\rbrack.}$

Then H can be approximately expressed as H=A_(r)ΣA_(t) ^(H), where Σ is a sparse matrix with every column and every row thereof having at most one nonzero element and with the nonzero elements corresponding to the channel coefficients λ_(l). Substituting H in (1) with this expression and vectorizing Y, we have

$\begin{matrix} \begin{matrix} {{{vec}(Y)} = {{vec}\left( {{\sqrt{P}W_{r}^{H}A_{r}\Sigma \; A_{t}^{H}W_{t}} + Z} \right)}} \\ {= {{\sqrt{P}\left( {\left( {A_{t}^{H}W_{t}} \right)^{T} \otimes \left( {W_{r}^{H}A_{r}} \right)} \right){{vec}(\Sigma)}} + {{vec}(Z)}}} \\ {{\overset{\Delta}{=}{{\sqrt{P}{{Qvec}(\Sigma)}} + {{vec}(Z)}}},} \end{matrix} & (5) \end{matrix}$

where ⊗ is the Kronecker product. Since || vec(Σ)|₀=L<<N_(r)N_(t), sparse recovery tools can be adopted to estimate H, where the dictionary matrix Q can be obtained by randomly setting the Tx and Rx training AWVs in each measurement as [w_(r)]_(k) ∈ {e^(jθ)/√{square root over (N_(r))}} and [w_(t)]_(m) ∈ {e^(jθ)/√{square root over (N_(t))}} with uniformly distributed phase θ. Note that as the number of candidate vectors, i.e., the number of columns of Q, is large, the computational complexity of the CS approach is high. In addition, the total number of measurements is T_(CS)=ϵ_(r)ϵ_(t). And when T_(CS) is not large enough, the performance of the CS approach is not satisfactory. The adaptive compressed sensing (ACS) scheme proposed by Alkhateeb et al. can reduce the training overhead to some extent, but multiple RF chains are required to guarantee satisfactory performance.

The Hierarchical Search Approach: The hierarchical search method is based on the structure of H. As there are L MPCs to be found, it is natural to search them one by one, and a hierarchical codebook can be used to reduce the search time. Different from the single-path search, for multi-path search, the contribution of the formerly found MPCs should be subtracted from the received signal during the search of each MPC. For instance, suppose that we have estimated the coefficients, AoAs and AoDs of the first L_(f) MPCs, denoted by {circumflex over (λ)}_(i), {circumflex over (θ)}_(i), {circumflex over (ψ)}_(i) for i=1,2, . . . , L_(f), then in the search of the (L_(f)+1)-th MPC, in each measurement we can compute the decision variable as

$\begin{matrix} \begin{matrix} {\overset{\_}{y} = {\underset{\underset{Measured}{}}{{\sqrt{P}w_{r}^{H}{Hw}_{t}} + z} - \underset{\underset{FormerContribution}{}}{\sqrt{P}w_{r}^{H}\left( {\sum\limits_{i = 1}^{L_{f}}\; {{\hat{\lambda}}_{i}{a_{r}\left( {\hat{\theta}}_{i} \right)}{a_{t}^{H}\left( {\hat{\psi}}_{i} \right)}}} \right)w_{t}}}} \\ {= {{\sqrt{P}{w_{r}^{H}\left( {\sum\limits_{i = {L_{f} + 1}}^{L}\; {\lambda_{i}{a_{r}\left( \theta_{i} \right)}{a_{t}^{H}\left( \psi_{i} \right)}}} \right)}w_{t}} + z +}} \\ {{\sqrt{P}{w_{r}^{H}\left( {\sum\limits_{i = 1}^{L_{f}}\; \left( {{\lambda_{i}{a_{r}\left( \theta_{i} \right)}{a_{t}^{H}\left( \psi_{i} \right)}} - {{\hat{\lambda}}_{i}{a_{r}\left( {\hat{\theta}}_{i} \right)}{a_{t}^{H}\left( {\hat{\psi}}_{i} \right)}}} \right)} \right)}w_{t}}} \\ {{\overset{\Delta}{=}{{\sqrt{P}{w_{r}^{H}\left( {\sum\limits_{i = {L_{f} + 1}}^{L}\; {\lambda_{i}{a_{r}\left( \theta_{i} \right)}{a_{t}^{H}\left( \psi_{i} \right)}}} \right)}w_{t}} + z + I_{res}}},} \end{matrix} & (6) \end{matrix}$

where I_(res) is the residual interference. If the AoAs and AoDs are accurately estimated, the coefficients will also be accurately estimated, and I_(res) will be small. Dropping the noise component, we have

$\begin{matrix} {{\overset{\_}{y} \approx {\sqrt{P}{w_{r}^{H}\left( {\sum\limits_{i = {L_{f} = 1}}^{L}\; {\lambda_{i}{a_{r}\left( \theta_{i} \right)}{a_{t}^{H}\left( \psi_{i} \right)}}} \right)}w_{t}}},} & (7) \end{matrix}$

which means the (L_(f)+1)-th MPC can be normally found by using the hierarchical search method. However, if the AoAs and AoDs are not accurately estimated, there would be significant coefficient errors, and I_(res) will be large. In such a case, the search of the (L_(f)+1)-th MPC will be dramatically affected by the residual interference. That is to say, accurate estimation of the AoAs and AoDs are critical for the hierarchical search method. In practice, the best angle resolution of a codebook for an ULA with N_(A) antennas is 2/N_(A) in general, because a steering vector has an angle resolution of 2/N_(A). Although it is possible to design a codebook with a much higher resolution so as to accurately estimate the AoAs and AoDs, it will accordingly increase the search time and the storage size of the codebook. More importantly, a higher angle resolution will further intensify the challenge of phase shifter design at the mmWave band, which is undesired in mmWave communication, where hardware design is already harsh. Hence, the codebook with the resolution of 2/N_(A) is a normal limited-resolution codebook, and the codebook with the resolution higher than 2/N_(A) is a high resolution codebook.

In summary, the CS approach can estimate multiple MPCs, but it requires a large number of measurements; otherwise the performance is not satisfactory. The hierarchical search method can also estimate multiple MPCs, provided that the angle resolution of the exploited codebook is sufficiently high. However, this is undesirable from the perspective of hardware design for mmWave devices.

To solve the problems in the above approaches, this invention provides a VMA-SR method to quickly and accurately acquire multiple MPCs while exploiting a normal limited-resolution codebook.

The VMA-SR method according to the present invention has two stages, namely virtual multipath acquisition (VMA) for the first stage and sparse reconstruction (SR) for the second stage.

A. The First Stage: Virtual Multipath Acquisition

I) Virtual Representation of the Real MPCs: First, we sample the AoA and AoD domains with angle resolutions 2/N_(r) and 2/N_(t), respectively, and obtain two sets of steeling vectors:

${U = \left\lbrack {{a_{r}\left( {{- 1} + \frac{1}{N_{r}}} \right)},{a_{r}\left( {{- 1} + \frac{3}{N_{r}}} \right)},\ldots \mspace{14mu},{a_{r}\left( {{- 1} + \frac{{2\; N_{r}} - 1}{N_{r}}} \right)}} \right\rbrack},{V = {\left\lbrack {{a_{t}\left( {{- 1} + \frac{1}{N_{t}}} \right)},{a_{t}\left( {{- 1} + \frac{3}{N_{t}}} \right)},\ldots \mspace{14mu},{a_{t}\left( {{- 1} + \frac{{2\; N_{t}} - 1}{N_{t}}} \right)}} \right\rbrack.}}$

It is easy to verify that U^(H)U=I_(N), and V^(H)V=I_(N) _(t) , which means that

$\left\{ {a_{r}\left( {{- 1} + \frac{{2\; k} - 1}{N_{r}}} \right)} \right\}_{{k = 1},2,\ldots \mspace{14mu},N_{r}}\mspace{14mu} {and}\mspace{14mu} \left\{ {a_{t}\left( {{- 1} + \frac{{2\; k} - 1}{N_{t}}} \right)} \right\}_{{k = 1},2,\ldots \mspace{14mu},N_{t}}$

constitute an orthogonal base of

^(N) ^(r) and

^(N) ^(t) , respectively. Hence, for arbitrary θ_(l) and ψ_(l) we have

$\begin{matrix} \left\{ {\begin{matrix} {{{a_{r}\left( \theta_{} \right)} = {\sum\limits_{k = 1}^{N_{r}}\; {\alpha_{k,}{a_{r}\left( {{- 1} + \frac{{2\; k} - 1}{N_{r}}} \right)}}}},} \\ {{{a_{t}\left( \psi_{} \right)} = {\sum\limits_{k = 1}^{N_{t}}\; {\beta_{k,}{a_{t}\left( {{- 1} + \frac{{2\; k} - 1}{N_{t}}} \right)}}}},} \end{matrix}{where}} \right. & (8) \\ \left\{ \begin{matrix} {{\alpha_{k,} = {{a_{r}^{H}\left( {{- 1} + \frac{{2\; k} - 1}{N_{r}}} \right)}{a_{r}\left( \theta_{} \right)}}},} \\ {{\beta_{k,} = {{a_{t}^{H}\left( {{- 1} + \frac{{2\; k} - 1}{N_{t}}} \right)}{a_{t}\left( \psi_{} \right)}}},} \end{matrix} \right. & (9) \end{matrix}$

where α_(k,l) denotes the projection of a_(r)(θ_(l)) in the direction of the unit vector

${a_{r}\left( {{- 1} + \frac{{2\; k} - 1}{N_{r}}} \right)},$

and β_(k,l) denotes the projection of a_(t)(ψ_(l)) in the direction of the unit vector

${a_{t}\left( {{- 1} + \frac{{2\; k} - 1}{N_{t}}} \right)}.$

Let f_(r)(x)=|a_(t) ^(H)(θ)a_(r)(θ+x)|, i.e., a Fejér kernel function, which goes to zero quickly by increasing |x|. It is known that f_(r)(0)=1, and when |x|>1/N_(r), the kernel is far smaller than 1 given that N_(r) is large. According to this property, there are only 2 elements in {α_(k,l)}_(k−1,2, . . . ,) N_(r) that may have a significant absolute value, which are α_(I) _(r) _(+(θ) _(l) _(),l) and α_(I) _(t) _(−(θ) _(l) _(),l) with

$\begin{matrix} \left\{ \begin{matrix} {{{I_{r}^{+}\left( \theta_{} \right)} = \left\lbrack {\left( {{N_{r}\left( {\theta_{} + 1} \right)} + 1} \right)/2} \right\rbrack},} \\ {{{I_{r}^{-}\left( \theta_{} \right)} = \left\lbrack {\left( {{N_{r}\left( {\theta_{} + 1} \right)} + 1} \right)/2} \right\rbrack},} \end{matrix} \right. & (10) \end{matrix}$

where ┌.┐ and └.┘ denote ceil and floor integer operations, respectively. Analogously, there are only 2 elements in {α_(k,l)}_(k=1,2, . . . ,) N_(t) that may have a significant absolute value, which are β_(I) _(t) _(+(ψ) _(l) _(),l) and β_(I) _(t) _(−(ψ) _(l) _(),l) with

$\begin{matrix} \left\{ \begin{matrix} {{{I_{t}^{+}\left( \psi_{} \right)} = \left\lbrack {\left( {{N_{t}\left( {\psi_{} + 1} \right)} + 1} \right)/2} \right\rbrack},} \\ {{{I_{t}^{-}\left( \psi_{} \right)} = \left\lbrack {\left( {{N_{t}\left( {\psi_{} + 1} \right)} + 1} \right)/2} \right\rbrack},} \end{matrix} \right. & (11) \end{matrix}$

Consequently, we have

$\begin{matrix} {{{a_{r}\left( \theta_{} \right)} \approx {{\alpha_{ +}{a_{r}\left( \theta_{ +} \right)}} + {\alpha_{ -}{a_{r}\left( \theta_{ -} \right)}}}},} & (12) \\ {{{a_{t}\left( \psi_{} \right)} \approx {{\beta_{ +}{a_{t}\left( \psi_{ +} \right)}} + {\beta_{ -}{a_{t}\left( \psi_{ -} \right)}}}},} & (13) \\ {where} & \; \\ \left\{ \begin{matrix} {{\alpha_{ +} = \alpha_{{I_{r}^{+}{(\theta_{})}},}},} & {{\alpha_{ -} = \alpha_{{I_{t}^{-}{(\theta_{})}},}},} \\ {{\beta_{ +} = \beta_{{I_{t}^{+}{(\psi_{})}},}},} & {{\beta_{ -} = \beta_{{I_{t}^{-}{(\psi_{})}},}},} \end{matrix} \right. & (14) \\ \left\{ \begin{matrix} {{\theta_{ +} = {{- 1} + \frac{{2{I_{r}^{+}\left( \theta_{} \right)}} - 1}{N_{r}}}},} & {{\theta_{ -} = {{- 1} + \frac{{2{I_{r}^{-}\left( \theta_{} \right)}} - 1}{N_{r}}}},} \\ {{\psi_{ +} = {{- 1} - {+ \frac{{2{I_{t}^{+}\left( \psi_{} \right)}} - 1}{N_{t}}}}},} & {\psi_{ -} = {{- 1} + {\frac{{2{I_{t}^{-}\left( \psi_{} \right)}} - 1}{N_{t}}.}}} \end{matrix} \right. & (15) \end{matrix}$

Finally, we can approximately express H as

$\begin{matrix} {{{H \approx {\sum\limits_{ = 1}^{L}{{\lambda_{}\left\lbrack {{\alpha_{ +}{a_{r}\left( \theta_{ +} \right)}} + {\alpha_{ -}{a_{r}\left( \theta_{ -} \right)}}} \right\rbrack} \times \left\lbrack {{\beta_{ +}{a_{t}\left( \psi_{ +} \right)}} + {\beta_{ -}{a_{t}\left( \psi_{ -} \right)}}} \right\rbrack^{H}}}} = {\sum\limits_{ = 1}^{L}{\lambda_{}\left\lbrack {{\alpha_{ +}\beta_{ +}^{*}{a_{r}\left( \theta_{ +} \right)}{a_{t}^{H}\left( \psi_{ +} \right)}} + {\alpha_{ -}\beta_{ +}^{*}{a_{r}\left( \theta_{ -} \right)}{a_{t}^{H}\left( \psi_{ +} \right)}} + {\alpha_{ +}\beta_{ -}^{*}{a_{r}\left( \theta_{ +} \right)}{a_{t}^{H}\left( \psi_{ -} \right)}} + {\alpha_{ -}\beta_{ -}^{*}{a_{r}\left( \theta_{ -} \right)}{a_{t}^{H}\left( \psi_{ -} \right)}}} \right\rbrack}}},} & (16) \end{matrix}$

where we can find that the original L real MPCs are represented by 4L virtual MPCs, and most importantly, the Rx and Tx steering vectors of the 4 virtual MPCs, corresponding to one single real MPC, are two adjacent basis vectors within U and V, respectively. The superscript * denotes conjugate.

FIG. 1 illustrates these properties of an MPC with an AoA of 0 (in the cosine angle domain) and an AoD of 1/16, where N_(t)=N_(r)=16, I_(r) ⁻(θ_(l))=1/N_(r), I_(r) ⁻(θ_(l))=−1/N_(r), I_(t) ⁺(ψ_(l))=1/N_(t) and I_(t) ⁻(ψ_(l))=−1/N_(t). The absolute values of α¹⁻, α₁₊, β¹⁻ and β₁₊ are also shown in FIG. 1. FIG. 2 shows the 4 virtual MPCs corresponding to the real MPC with an AoA of 0 and an AoD of 1/16, where N_(t)=N_(r)=8.

Note that different from the real MPCs which have arbitrary AoAs and AoDs, the AoAs and AoDs of the virtual MPCs can be accurately estimated with a normal limited-resolution codebook containing the AWVs in U and V, which means that, instead of directly estimating the L real MPCs, we may estimate the 4L virtual MPCs based on a limited-resolution codebook. Afterwards, we can reconstruct the original L real MPCs based on the 4L virtual MPCs.

II) Hierarchical Search of the Virtual MPCs: Since the AoAs and AoDs (in the cosine angle domain) of the virtual MPCs are within

${\left\{ {{- 1} + \frac{{2k} - 1}{N_{r}}} \right\}_{{k = 1},2,\; \ldots \mspace{11mu},N_{r}}\mspace{14mu} {and}\mspace{14mu} \left\{ {{- 1} + \frac{{2k} - 1}{N_{t}}} \right\}_{{k = 1},2,\; {\ldots \mspace{11mu} N_{t}}}},$

respectively, the virtual MPCs can be accurately estimated by hierarchical search with a limited-resolution codebook. For instance, FIG. 3 shows a typical limited-resolution codebook

with N=16 antennas. The codebook has (log, N+1) layers. In the k-th layer, k=0,1,2, . . . , log₂ N, there are 2^(k) codewords of the same beam width with different steering angles and collectively covering the entire search space in the cosine angle domain. Note that a codeword is actually an AWV used for beamforming. Let w(k,n) denote the n-th codeword in the k-th layer, n=1, . . . , 2^(k). Then the beam coverage of w(k,n) is approximately the union of the beam coverage of the 2 codewords in the (k+1)-th layer, i.e., {w(k+1,2(n−1)+m)}_(m−1,2). There are different methods to design such a codebook, and all the hierarchical codebooks designed by different methods can be used to search the virtual MPCs, provided that the last-layer codewords are steering vectors towards

$\left\{ {{- 1} + \frac{{2k} - 1}{N}} \right\}_{{k = 1},2,\; \ldots \mspace{11mu},N}.$

Based on the hierarchical codebook, we next introduce the proposed hierarchical search algorithm to acquire the virtual MPCs, which is shown in Algorithm 1, where w_(t)(.) and w_(r)(.) represent the Tx and Rx codewords, respectively.

Algorithm 1: Hierarchical Search of the Virtual MPCs. 1) Initialization: S = log₂ N_(r). /*Assume N_(r) = N_(t) , and calculate the total number of layers S */ S₀ = 2. /*The initial layer index.*/ H_(fd) = 0. /*The already found MPCs.*/ 2) Iteration: for l = 1:L do /*There are L iterations in the search process.*/   /*Step 1: Search for the initial Tx/Rx codewords.*/    for m = 1:2^(S) ₀ do      for n = 1:2^(S) ₀ do       y(m,n) = {square root over (P)}w_(r)(S₀,n)^(H)Hw_(t)(S₀,m) + z −       w_(r)(S₀,n)^(H)H_(fd)w_(t)(S₀,m)    (m_(t),n_(r)) = arg_((m,n)) max | y(m,n)|   /*Step 2: Hierarchical search. The best Tx/Rx codeword pair   w_(t)(S₀,m_(t)) and w_(r)(S₀, n_(r)) acquired in Step 1 are treated as the   parent codewords for Step 2. */    for s = (S₀ + 1): S do     for m = 1,2 do       for n = 1,2 do        y(m,n) = {square root over (P)}w_(r)(s,2(n_(r) − 1) + n)^(H)Hw_(t)(s,2(m_(t) − 1) + m) +        z − w_(r)(s,2(n_(r) − 1) + n)^(H)H_(fd)w_(t)(s,2(m_(t) − 1) + m)     (a,b) = arg_((m,n)) max | y(m,n)|     m_(t) = 2(m_(t) − 1) + a;n_(r) = 2(n_(r) − 1) + b   /*Step 3: Collection of the virtual MPCs: Acquire the significant   virtual MPC at the last layer (S -th layer).*/    for m = −1,0,1 do     for n = −1,0,1 do       y = {square root over (P)}w_(r)(S,n_(r) + n)^(H)Hw_(t)(S,m_(t) + m) + z       H_(fd) = H_(fd) + yw_(r)(S,n_(r) + n)w_(t)(S,m_(t) + m)^(H) 3) Results: Return the virtual channel H_(fd)

There are L iterations in the search process, and the virtual MPCs corresponding to a single MPC are acquired in each iteration. The hierarchical search algorithm for the VMA-SR method is briefly illustrated as follows.

(1) Initialization: Calculate the total number of layers S, set the initial layer index S₀ and initialize the already found MPCs as a zero vector, i.e., H_(fd)=0. (2) Search process: Execute the following three steps L times.

Step 1: Search for the initial Tx/Rx codewords. As in mmWave communication the transmission power is generally limited, the beamforming training may not start from the 0-th layer, where the codeword is omni-directional and the gain is low. Instead, the beamforming training may need to start from a higher layer, e.g., the S₀-th layer, to provide sufficient start-up beamforming gain. In this process, there are 2^(S) ⁰ candidate codewords at both Tx and Rx. Thus, an exhaustive search over all base station (BS) and mobile station (MS) codeword pairs is adopted to search the best Tx/Rx codeword pair, which are treated as the parent codewords for the following search. m_(t) and n_(r) denote the best Tx/Rx codeword indexes in the S₀-th layer, respectively. Note that when computing y(m,n), the sum of the first two terms is substituted by the measured value of the corresponding received value.

Step 2: Hierarchical search. In this process, a layered search is performed to refine the beam angle step by step, until the most significant virtual UPC is acquired at the last layer (the S-th layer).

The best Tx/Rx codeword pair w_(t)(S₀,m_(t)) and w_(r)(S₀,n_(r)) acquired in step 1 are treated as the parent codewords for step 2. Then a layered search is performed from the (S₀+1)-th layer to the S-th layer to acquire the most significant virtual MPC.

In the search for each layer, the best Tx/Rx codeword pair in current layer are found according to the following problem:

$\begin{matrix} {{y\left( {m,n} \right)} = \begin{matrix} {{{\sqrt{P}{w_{r}\left( {s,{{2\left( {n_{r} - 1} \right)} + n}} \right)}^{H}{{Hw}_{t}\left( {s,{{2\left( {m_{t} - 1} \right)} + m}} \right)}} + z - {{w_{r}\left( {s,{{2\left( {n_{r} - 1} \right)} + n}} \right)}^{H}H_{fd}{w_{t}\left( {s,{{2\left( {m_{t} - 1} \right)} + m}} \right)}}},{\left( {a,b} \right) = {\underset{({m,n})}{{\arg \mspace{11mu} \max}\;}{{y\left( {m,n} \right)}}}},} & \; \end{matrix}} & (17) \end{matrix}$

where m and n are in range of {1,2], and s is the index of the current layer. And the best codewords in the current layer are treated as the parent codewords in the next layer, i.e., after (a,b) is acquired, update the best Tx/Rx codeword indexes in the current layer. Note that when computing y(m,n), the sum of the first two terms, √{square root over (P)}w_(r)(s,2)(n_(r)−1)+n)^(H)Hw_(t)(s,2(m_(t)−1)+m)+z, is substituted by the measured value of the corresponding received signal.

Step 3: Collection of the virtual MPCs. After the hierarchical search, the most significant virtual MPC is acquired. Since the other 3 virtual MPCs are adjacent to the already found MPC, we measure a ±1 AoA/AoD neighborhood to make sure that the desired virtual MPCs are all collected. Note that y=√{square root over (P)}w_(r)(S,n_(r)+n)^(H)Hw_(t)(S,m_(t)+m)+z is substituted by the measured value of the corresponding received signal. With this operation, 9 instead of 4 virtual MPCs are actually acquired. Flowever, the other 5 virtual MPCs have much smaller strength compared with the 4 desired virtual MPCs, and thus affect little on the results.

As shown in the above steps, in each measurement, Tx would transmit a training signal with a Tx AWV, while Rx would receive the signal with an Rx AWV. Then the received signal y would be measured at the Rx. In step 3, after the most significant virtual MPC is acquired, we measure a neighborhood to collect the desired virtual MPCs. Each time a virtual MPC is acquired, the virtual channel H_(fd) is updated. Computing the sum of the collected virtual MPC, the virtual channel is obtained as H_(fd)=H_(fd)+yw_(r)(S,n_(r)+n)w_(t)(S,m_(t) 30 m)^(H), where m and n are in range of {−1,0,1}.

Note that in each iteration, H_(fd) obtained in the current iteration will be the initial H_(fd) in the next iteration.

In Alrothm 1, it is assumed that N_(t)=N_(r). When N_(t) is different from N_(r), Algorithm 1 may be easily modified as follows. Let S_(t) denote the total number of layers of the Tx codebook and S_(r) denote the total number of layers of the Rx codebook. If S_(t)<S_(r), in Step 2 of Algorithm 1, when the best Tx codeword w_(t)(S_(t),m_(t)) at the S_(t)-th layer is acquired, the layered search of the Rx codebook continues to be performed from the (S_(t)+1)-th layer to the S_(r)-th layer to acquire the best Rx codeword w_(r)(S_(t),m_(r)). If S_(t)>S_(r), in Step 2 of Algorithm 1, when the best Rx codeword w_(r)(S_(r),m_(r)) at the S_(r)-th layer is acquired, the layered search of the Tx codebook continues to be performed from the S_(r)+1-th layer to the S_(t)-th layer to acquire the best Tx codeword w_(t)(S_(t),m_(t)).

III) Signal measurement hardware system: In the hierarchical search of MPCs, when searching the best Tx/Rx codeword pair w_(t) and w_(r) in each layer, for each candidate codeword pair, the received signal y correspondimg to the codeword pair needs to be measured. To facilitate understanding of the process of measuring the received signal y, a signal measurement hardware system is described below.

FIG. 4 illustrates a simplified block diagram of the signal measurement system. This system includes a transmitter 100 and a receiver 110.

The transmitter 100 includes a digital baseband 101 and an RF phased array 105. The digital baseband 101 includes a controller 102, a baseband signal generator 103, and a beam controller 104, wherein the controller 102 controls the baseband signal generator 103 to generate a baseband signal s and controls the beam controller 104 to generate the Tx codeword w_(t), which is used as the Tx AWV. As shown in FIG. 5, the RF phased array 105 includes an RF chain 501, phase shifters 502, power amplifiers 503, and transmitting antennas 504, wherein the RF chain 501 generates an RF based on the baseband signal s, the phase shifters 502 adjust the phase of the RE based on the Tx AWV, the power amplifiers 503 increase the output power of the RF, and the signal S is transmitted at the transmitting antennas 504.

The receiver 110 includes a digital baseband 111 and an RF phased array 115. The digital baseband 111 includes a processor 112, a baseband signal detector 113 and a beam controller 114, wherein the processor 112 controls the beam controller 114 to generate the Rx codeword w_(r), which is used as the Rx AWV, and controls the baseband signal detector 113 to detect the received signal y, and processes the received signal y. As shown in FIG. 6, the RF phased array 115 includes receiving antennas 601, low noise amplifiers 602, phase shifters 603, an adder 604 and an RF chain 605, wherein the receiving antennas 601 receive the signal S′, the low noise amplifiers 602 enhance the input power of the signal, the phase shifters 603 adjust the phase of the signal based on the Rx AWV, the signals from the phase shifters 603 are added by the adder 604 and fed to the RF chain 605 to generate the RE, and the RF is fed to the baseband signal detector 113.

IV) Implementation of Hierarchical Search in Algorithm 1

Hierarchical search algorithm is achieved through multiple measurements. In the search of each layer, for each candidate codeword pair of the current layer, the received signal y corresponding to the codeword pair needs to be measured, i.e., one candidate codeword pair (w_(t),w_(r)) corresponds to one measurement. In each measurement, the transmitter 100 uses w_(t) as the Tx AWV set on the Tx RF phased array 105, and sends a baseband signal s with power P. The receiver 110 uses w_(r) as the Rx AWV set on the Rx RF phased array 115, measures the received signal y, sends it to the processor 112 for calculation, and feeds back the result to the transmitter 100. As shown in FIG. 7, specific steps are as follows:

At S710, determine the Tx codeword w_(t) from the Tx codebook and Rx codeword w_(r) from the Rx codebook;

At S720, the Tx controller 102 controls the beam controller 104 to generate the Tx codeword (i.e., w_(t)), and set the weights of the RF phased array 105 (i.e., Tx AWV) with the generated codeword;

At S730, the Rx processor 112 controls the beam controller 114 to generate the Rx codeword (i.e., w_(r)), and set the weights of the RF phased array 115 (i.e., Rx AWV) with the generated codeword;

At S740, the Tx controller 102 controls the baseband signal generator 103 to generate the baseband signal s, and the RF phased array 105 generates the transmitted signal S;

At S750, the RF phased array 115 receives the received signal S′. After converting it into an RF signal, the RF phased array 115 transmits the RF signal to the baseband signal detector 113. The baseband signal detector 113 detects and measures the received signal y.

At S760, the baseband signal detector 113 passes the received signal y to the processor 112 for calculation. The processor 112 determines the Tx codeword w_(t) and the Rx codeword w_(r) for setting the Tx AWV and the Rx AWV for the next measurement.

B. The Second Stage: Sparse Reconstruction

As we have estimated the virtual channel H_(fd), we have the following relation:

$\begin{matrix} {H = {{\sum\limits_{ = 1}^{L}{\lambda_{}{a_{r}\left( \theta_{} \right)}{a_{t}^{H}\left( \psi_{} \right)}}} \approx {H_{fd}.}}} & (18) \end{matrix}$

To reconstruct the original channel H, we need to estimate λ_(l), θ_(l) and ψ_(l). Hence, we formulate the following problem:

$\begin{matrix} {{\underset{\lambda_{},\theta_{},\psi_{}}{{minimize}\;}{{H_{fd} - {\sum\limits_{ = 1}^{L}{\lambda_{}{a_{r}\left( \theta_{} \right)}{a_{t}^{H}\left( \psi_{} \right)}}}}}_{F}},} & (19) \end{matrix}$

Then, analogous to the pure CS approach, we sample the AoA and AoD domain with a high resolution, i.e., an angle interval 2/(KN_(r)) at the Rx and 2/(KN_(t)) at the Tx, where K is the over-sampling factor, and we obtain

$A_{r} = {{\left\lbrack {{a_{r}\left( {{- 1} + \frac{1}{{KN}_{r}}} \right)},{a_{r}\left( {{- 1} + \frac{3}{{KN}_{r}}} \right)},\ldots \mspace{14mu},{a_{r}\left( {{- 1} + \frac{{2{KN}_{r}} - 1}{{KN}_{r}}} \right)}} \right\rbrack \mspace{14mu} {and}\mspace{14mu} A_{t}} = {\left\lbrack {{a_{t}\left( {{- 1} + \frac{1}{{KN}_{t}}} \right)},{a_{t}\left( {{- 1} + \frac{3}{{KN}_{t}}} \right)},{\ldots \mspace{14mu} {a_{t}\left( {{- 1} + \frac{{2{KN}_{t}} - 1}{{KN}_{t}}} \right)}}} \right\rbrack.}}$

This manipulation is applicable, but at the cost of a high computational complexity. In fact, by exploiting the search results in Algorithm 1, we can significantly reduce the number of the Rx and Tx candidate AWVs. Concretely, since the estimated AoA of the l-th MPC is

${{\hat{\theta}}_{} = {{- 1} + \frac{{2n_{r\; }} - 1}{N_{r}}}},$

where n_(rl) is the index of the best Rx codeword for the l-th MPC obtained at the end of Step 2 of Algorithm 1, the uncertainty range of the l-th AoA should be

$\left\lbrack {{{\hat{\theta}}_{} - \frac{2}{N_{r}}},{{\hat{\theta}}_{} + \frac{2}{N_{r}}}} \right\rbrack,$

which means that the candidate AoAs are the angle set obtained by sampling the angle range

$\left\lbrack {{{\hat{\theta}}_{} - \frac{2}{N_{r}}},{{\hat{\theta}}_{} + \frac{2}{N_{r}}}} \right\rbrack$

with an interval 2/(KN_(r)). Consequently, the reduced Rx and Tx candidate AWVs are

$\begin{matrix} {{{\overset{\_}{A}}_{r} = \left\lbrack {\left\lbrack {a_{r}\left( {{\hat{\theta}}_{1} - \frac{2}{N_{r}} + \frac{2k}{{KN}_{r}}} \right)} \right\rbrack_{{k = 0},1,\; {\ldots \; 2K}},\left\lbrack {a_{r}\left( {{\hat{\theta}}_{2} - \frac{2}{N_{r}} + \frac{2k}{{KN}_{r}}} \right)} \right\rbrack_{{k = 0},1,\; {\ldots \mspace{11mu} 2K}},\left\lbrack {a_{r}\left( {{\hat{\theta}}_{L} - \frac{2}{N_{r}} + \frac{2k}{{KN}_{r}}} \right)} \right\rbrack_{{k = 0},1,\; {\ldots \mspace{11mu} 2K}}} \right\rbrack},} & (20) \\ {and} & \; \\ {{{\overset{\_}{A}}_{t} = \left\lbrack {\left\lbrack {a_{t}\left( {{\hat{\psi}}_{1} - \frac{2}{N_{t}} + \frac{2k}{{KN}_{t}}} \right)} \right\rbrack_{{k = 0},1,\; {\ldots \; 2K}},\left\lbrack {a_{t}\left( {{\hat{\psi}}_{2} - \frac{2}{N_{t}} + \frac{2k}{{KN}_{t}}} \right)} \right\rbrack_{{k = 0},1,\; {\ldots \mspace{11mu} 2K}},\left\lbrack {a_{t}\left( {{\hat{\psi}}_{L} - \frac{2}{N_{t}} + \frac{2k}{{KN}_{t}}} \right)} \right\rbrack_{{k = 0},1,\; \ldots \mspace{11mu},{2K}}} \right\rbrack},} & (21) \end{matrix}$

respectively, where

${{\hat{\psi}}_{} = {{- 1} + \frac{{2m_{t\; }} - 1}{N_{t}}}},$

where m_(tl) is the index of the best Tx codeword for the l-th MPC obtained at the end of Step 2 of Algorithm I. Then H can be approximately expressed as H=Ā_(r)ΣĀ_(t) ^(H), where Σ is a sparse matrix with every column and every row thereof having at most one nonzero element and with the nonzero elements corresponding to the channel coefficients λ_(l), i.e., || vec(Σ)||₀=L. In a sequel,

$\begin{matrix} {{{H_{fd} - {\sum\limits_{ = 1}^{L}{\lambda_{}{a_{r}\left( \theta_{} \right)}{a_{t}\left( \psi_{} \right)}^{H}}}}}_{F} = {{H_{fd} - {{\overset{\_}{A}}_{r}{\sum{{\overset{\_}{A}}_{t}^{H}{_{F}{= {{{{vec}\left( {H_{fd} - {{\overset{\_}{A}}_{r}{\sum{\overset{\_}{A}}_{t}^{H}}}} \right)} {_{2}{= {{{{vec}\left( H_{fd} \right)} - {{{vec}\left( {{\overset{\_}{A}}_{r}{\sum{\overset{\_}{A}}_{t}^{H}}} \right)} {_{2} {= {\quad{{{{vec}\left( H_{fd} \right)} - {\quad{\quad{\left( {{\overset{\_}{A}}_{t}^{*} \otimes {\overset{\_}{A}}_{r}} \right) {{vec}(\sum)} {_{2} {= {{{{vec}\left( H_{fd} \right)} - {\overset{\_}{Q}{{vec}(\sum)}{_{2},}}}}}}}}}}}}}}}}}}}}}}}}}}}}} & (22) \end{matrix}$

where |.|_(F) represents Frobenius norm.

Hence, the problem (19) becomes

$\begin{matrix} \begin{matrix} {\underset{\lambda_{},{\theta_{}\psi_{}}}{{minimize}\mspace{11mu}}{{{{vec}\left( H_{fd} \right)} - {\overset{\_}{Q}{{vec}(\sum)}_{2}}}}} \\ {{subject}\mspace{20mu} {to}{\mspace{11mu} \;}{{{{vec}(\sum)}{_{0}{{= L},}}}}} \end{matrix} & (23) \end{matrix}$

which is a standard sparse reconstruction problem. By using the results of the VMA stage, the size of the dictionary matrix Q of the sparse reconstruction problem can be greatly reduced, and thus the problem can be efficiently solved by the classic orthogonal matching pursuit (OMP) method.

In practice, the number of MPCs (i.e., L) is not known a priori. Besides, in some cases, it is not necessary to estimate all of the MPCs. In such cases, the number of MPCs in the VMA-SR method of the present application, in both of the two stages, is set to L=L_(d), the desired number of MPCs. For instance, if we want to realize a 2-stream transmission, we only need to estimate L_(d)=2 MPCs, no matter how many MPCs the channel really has.

Given a sufficiently large over-sampling factor K, it is possible to use the VMA-SR method to resolve MPCs with very close AoAs and AoDs, where the AoA and AoD gaps can be smaller than 2/N_(r), and 2/N_(t), respectively. In the VMA stage, we actually search an MPC cluster in each iteration, which can be either a single MPC or the summation of multiple adjacent MPCs with very close AoAs and AoDs. In the SR stage, we have implicitly assumed that there is only one MPC within each searched cluster in (23). If necessary, we can assume that there are κ adjacent MPCs with very close AoAs and AoDs within each cluster, and they can also be separately estimated by solving (23), with || vec(Σ)||₀=κL instead of || vec(Σ)||₀=L. The value of κ usually runs from 2 to 4.

Since the sparse reconstruction stage does not need measurement, the total number of measurements of the VMA-SR method is

T _(VMA-SR) =L(4^(S) ⁰ +2(log₂(N _(r))+log₂(N _(t))−2S ₀)+9)   (24)

Note that this is the training overhead for an analog beamforming/combining structure. In the case of a hybrid structure, where parallel transmission of multiple-stream training sequences is available, the time cost will be further reduced. Simulation results show that the VMA-SR method according to the present application achieves a superior tradeoff between estimation performance and training penalty.

To make the method according to the present application applicable for both analog and hybrid beamforming/combining devices with strict constant-modulus constraint, we particularly design a codebook for the hierarchical search by using an enhanced sub-array scheme. And we need to design w(k,n) with beam widths 2/2^(k) in the k-th layer, for k=0,1,2, . . . , log₂ N. We obey the following procedures to compute w(k,n):

Step 1: Separate w(k,1) into S_(k)=2^(┌(log) ² ^(N−k)/2┐) sub-arrays; thus each sub-array has N_(S)=N/S_(k) antennas.

Step 2: Set the AWVs of the S_(k) sub-arrays.

For w(k,1), the steering angle space between adjacent sub-arrays is Δ=2^(1−k)/S_(k), and the steering angles of the sub-arrays are

${\omega_{m} = {{- 1} + {\frac{{2m} - 1}{2}\Delta}}},{m = 1},2,\ldots \mspace{14mu},{S_{k}.}$

The steering vector function a(N_(S),ω_(m)) is defined as

${a\left( {N_{s},\omega_{m}} \right)} = {{\frac{1}{\sqrt{N_{s}}}\left\lbrack {e^{j\; \pi \; 0\; \omega_{m}},e^{j\; \pi \; 1\; \omega_{m}},\ldots \mspace{14mu},e^{j\; \pi \; {({N_{s} - 1})}\; \omega_{m}}} \right\rbrack}^{T}.}$

Then, for m=1,2, . . . S_(k), set

${\left\lbrack {w\left( {k,1} \right)} \right\rbrack_{{{{({m - 1})}N_{s}} + 1}:{mN}_{s}} = {\sqrt{\frac{N_{S}}{N}}e^{j\; \rho_{m}}{a\left( {N_{s},\omega_{m}} \right)}}},$

where the co-phase ρ_(m)=−πm(N_(S)−1)Δ/2−πN_(S)m(m−1)Δ/2,

Step 3: After the first codeword in the k-th layer w(k,1) obtained, all the other codewords in the k-th layer are found through rotating w(k,1) by

$\frac{{2n} - 2}{2^{k}},{n = 2},3,\ldots \mspace{14mu},2^{k},$

respectively, i.e.,

${{w\left( {k,n} \right)} = {{w\left( {k,1} \right)}{^\circ}\sqrt{N}{a\left( {N,\frac{{2n} - 2}{2^{k}}} \right)}}},$

where ° is the entry-wise product.

It is clear that there is no deactivation operation for all the codewords. Thus, the codebook according to the present application does not need to turn off some antenna branches and thus increases the maximal total transmission power. FIG. 8 shows the Beam patterns of the enhanced sub-array scheme described above, where we can find that for the 1st and the 3rd layer codewords, the enhanced sub-array scheme can achieve a significantly higher beam gain, due to no deactivation operation. Meanwhile, we can find that for the enhanced sub-array scheme, the beam width of w(1,1) is indeed rowdily 2 tunes of that of w(2,1), and 4 times of that of w(3,1), which are in accordance with that in FIG. 3.

In this invention, we require that the number of elements of a uniform linear array (ULA), i.e., N, be M^(P) for some positive integers M and p, which is because the proposed codebook design approach needs to divide the array or a sub-array into M smaller sub-arrays. For a ULA with an arbitrary number of elements, the sub-array technology is infeasible if N is not M to an integer power. Hence, the proposed codebook design approach may not be extended to ULAs with an arbitrary number of antenna elements without further modification or accommodation. There are two possible solutions in practice. One is to select a ULA with N being M to an integer power when designing the system, which is reasonable because the beamforming method should be considered in system planning. The other one is to exploit the proposed codebook design approach for beaming with M^(└ log) ^(M) ^(N┘) antennas while deactivating the other ones, where └.┘ is the floor integer operation. Afterwards, further beam refinement can be launched with all the antennas activated.

In the context of this invention, we have adopted a ULA model. In practice, it is more convenient to use a uniform planar array (UPA) in an minWave device, especially when the size of the device is small, because a UPA is more compact than a ULA and can save much area with the same number of antennas. Thus, we generalize the hierarchical codebook, which is designed by applying the enhanced sub-array scheme to UPA. In fact, by exploiting the Kronecker product, a UPA codeword can be obtained based on two ULA codewords. We introduce it in detail as follows.

Suppose the size of a UPA is N_(x)×N_(y), where N_(x) and N_(y) are the number of antennas along x and y axes, respectively, and they both are integer powers of 2. Let w_(P)(k,n_(x),n_(y)) denote the n_(x) and n_(y)-th (along x and y axes, respectively) codeword in the k-th layer. Then we have

w _(P)(k,n _(x) ,n _(y))=w _(x)(k,n _(x))⊗w _(y)(k,n _(y)),   (25)

where ⊗ is the Kronecker product, w_(x)(k,n_(x)) is the n_(x)-th codeword in the k-th layer of a ULA codebook with N_(x) antennas, while w_(y)(k,n_(y)) is the n_(y)-th codeword in the k-th layer of a ULA codebook with N_(y) antennas. w_(x)(k,n_(x)) and w_(y)(k,n_(y)) are ULA codewords and can be computed according to the enhanced sub-array scheme.

Without loss of generality, we design a fully hierarchical UPA codebook by exploiting the approach shown in (25). We assume the size of the UPA is N×N, and thus there is also (log₂ N+1) layers in the codebook. In the k-th layer, k=0,1,2, . . . , log₂ N, there are 4^(k) codewords in total, which are {w_(P)(k,n_(x),n_(y))|n_(x)=1,2,3, . . . , 2^(k); n_(y)=1,2,3, . . . , 2^(k)}.

FIG. 9 shows the beam patterns of the codewords in the first layer of a UPA codebook, where the size of the UPA is 8×8 . It can be observed that there are 4¹ codewords, and the beam coverage of a UPA codeword is a 2-dimensional angle domain, including the x and y-axes angel domains. The union of the beam coverage of the 4 codewords is roughly the whole 2-dimensional angle domain. The sub-beams within the beam coverage of each UPA codeword are due to the sub-array technique.

FIGS. 10 and 11 show the effect of the over-sampling factor K on the detection and mean squared error (MSE) performances of the VMA-SR approach. As we can see, the detection performance is improved little by increasing K when K≥2, while the MSE performance is consistently improved when increasing K. However, increasing K will result in larger dictionary matrix Q as shown in (23), which increases the computational complexity in the SR stage. In practice, a tradeoff between the MSE performance and the computational complexity is necessary to adopt appropriate K. 

What is claimed is:
 1. The method of channel estimation for millimeter-wave communication, comprising the steps of: providing a millimeter-wave transmitter (Tx) with N_(t) antennas; providing a millimeter-wave receiver (Rx) with N_(r) antennas; performing virtual multipath acquisition (VMA) using a hierarchical search of multiple layers to acquire virtual multipath components (MPCs) and a corresponding virtual channel H_(fd), wherein the hierarchical search for each layer comprises: causing the transmitter to transmit signals based on Tx codewords selected from a transmitter codebook, causing the receiver to receive signals from the transmitter based on Rx codewords selected from a receiver codebook, obtain measured values of the received signals, process the measured values of the received signals by a processor of the receiver, and to determine Tx codewords and. Rx codewords for the next layer of the hierarchical search, and returning to the transmitter the indexes of the Tx codewords for the next layer, wherein the Tx codewords are used as transmitter antenna weight vectors (Tx AWVs) for shifting the phase of the signals transmitted by the transmitter, and the Rx codewords are used as receiver antenna weight vectors (Rx AWVs) for shifting the phase of the signals received by the receiver; and performing sparse reconstruction (SR) to reconstruct real MPCs and therefore original channel H from the virtual channel H _(fd) acquired in the VMA step.
 2. The method of channel estimation of claim 1, wherein: the transmitter codebook and the receiver codebook for the hierarchical search are each a hierarchical codebook of (log₂ N+1) layers having 2^(k) codewords w(k,j), j=1,2, . . . , 2^(k), in the k-th layer, where N=N_(r) for the receiver codebook and N=N_(t) for the transmitter codebook, k=0,1,2, . . . , log₂ N; each codeword in the k-th layer of the hierarchical codebook has S_(k) sub-arrays, each sub-array covering N_(S)=N/S _(k) antennas, where S_(k)=2^(┌(log) ² ^(N−k)/2┐) and ┌.┐ denotes ceil integer operation; and the hierarchical codebook is constructed according to the following steps: (a) for k0,1,2, . . . , log₂ N, setting the first codeword in the k-th layer w(k,1 ) according to ${\left\lbrack {w\left( {k,1} \right)} \right\rbrack_{{{{({m - 1})}N_{s}} + 1}:{mN}_{s}} = {\sqrt{\frac{N_{s}}{N}}e^{j\; \rho_{m}}{a\left( {N_{s},\omega_{m}} \right)}}},{m = 1},2,\ldots \mspace{14mu},S_{k},{where}$ ρ_(m) = −π m(N_(s) − 1)Δ/2 − π N_(s)m(m − 1)Δ/2. ${\Delta = {2^{1 - k}/S_{k}}},{{a\left( {N_{s},\omega_{m\;}} \right)} = {\frac{1}{\sqrt{N_{s}}}\left\lbrack {e^{j\; \pi \; 0\; \omega_{m}},e^{j\; \pi \; 1\; \omega_{m}},\ldots \mspace{14mu},e^{j\; \pi \; {({N_{s} - 1})}\; \omega_{m}}} \right\rbrack}^{T}},{and}$ ${\omega_{m} = {{- 1} + {\frac{{2m} - 1}{2}\Delta}}};$ (b) for k=1,2, . . . , log₂ N, setting other codewords in the k-th layer according to ${{w\left( {k,n} \right)} = {{w\left( {k,1} \right)}{^\circ}\sqrt{N}{a\left( {N,\frac{{2n} - 2}{2^{k}}} \right)}}},{n = 2},3,\ldots \mspace{14mu},2^{k},$ where ° is the entry-wise product.
 3. The method of channel estimation of claim 2, wherein the hierarchical search comprises the following steps: setting S_(t)=log₂ N_(t), S_(r)=log₂ N_(r), S=log₂ N, where N=N_(r) if N_(r)≤N_(t), otherwise N=N_(r); setting initial layer index S₀ and initializing H_(fd)=0; executing the following steps for each l=1,2, . . . , L, where L is a predetermined number of real MPCs: (1) performing a search over all 2^(S) ⁰ ×2 ^(S) ⁰ Tx/Rx codeword pairs in the S₀-th layer to find a best Tx/Rx codeword pair w_(t)(S₀,m_(t)) and w_(r)(S₀,n_(r)), for which the value of y_(m)−w_(r)(S₀,n_(r))^(H)H_(fd)w_(t)(S₀,m_(t)) is the largest, where w_(r) and w_(t) respectively denote the receiver codeword and the transmitter codeword, y_(m) is the measured value of the received signal corresponding to the Tx/Rx codeword pair w_(t)(S₀,m_(t)) and w_(r)(S₀,n_(r)); (2A) performing a search for a best Tx/Rx codeword pair for each layer from the (S₀+1)-th layer to the S-th layer, wherein the best Tx/Rx codeword pair in the s-th layer is acquired by first finding (a,b) in the following problem: ${{y\left( {m,n} \right)} = {{y_{m}\left( {m,n} \right)} - {{w_{r}\left( {s,{{2\left( {n_{r} - 1} \right)} + n}} \right)}^{H}H_{fd}{w_{t}\left( {s,{{2\left( {m_{t} - 1} \right)} + m}} \right)}}}},\mspace{20mu} {\left( {a,b} \right) = {\underset{({m,n})}{\arg \; \max}{{y\left( {m,n} \right)}}}},$ where m_(t) and n_(r) are respectively the indexes of the best Tx/Rx codeword pair acquired from the immediate preceding layer, m and n are in range of {1,2}, y_(m)(m,n) is the measured value of the corresponding received signal, and then updating the best Tx/Rx codeword indexes m_(t) and n_(r) according to: m _(t)=2(m _(t)−1)+a, n _(r)=2(n _(r)−1)+b (2B ) if S_(r)>S_(t), performing a search for best Tx/Rx codeword pair for each layer from the (S+1)-th layer to the S_(r)-th layer, wherein the best Tx/Rx codeword pair in the s-th layer is acquired by first finding b in the following problem: ${{y^{\prime}(n)} = {{y_{m}^{\prime}(m)} - {{w_{r}\left( {s,{{2\left( {n_{r} - 1} \right)} + n}} \right)}^{H}H_{fd}{w_{t}\left( {S_{t},m_{t}} \right)}}}},{a = {\underset{n}{\arg \; \max}{{y^{\prime}(m)}}}},$ where m_(t) and n_(r) are respectively the indexes of the best Tx/Rx codeword pair acquired from the immediate preceding layer, n is in range of {1,2}, y′_(m)(n) is the measured value of the corresponding received signal, and then updating the best Tx/Rx codeword index n_(r) according to: n _(r)=2(n _(r)−1)+b; or if S_(t)>S_(r), performing a search for a best Tx/Rx codeword pair for each layer from the (S+1)-th layer to the S_(t)-th layer, wherein the best Tx/Rx codeword pair in the s-th layer is acquired by first finding a in the following problem: ${{y^{\prime}(m)} = {{y_{m}^{\prime}(m)} - {{w_{r}\left( {S_{r},n_{r}} \right)}^{H}H_{fd}{w_{t}\left( {s,{{2\left( {m_{t} - 1} \right)} + m}} \right)}}}},{a = {\underset{m}{\arg \; \max}{{y^{\prime}(m)}}}},$ where m_(t) and n_(r) are respectively the indexes of the best Tx/Rx codeword pair acquired from the immediate preceding layer, m is in range of {1,2, y′_(m)(m) is the measured value of the corresponding received signal, and then updating the best Tx/Rx codeword index m_(t) according to: m _(t)=2(m _(t)−1)+a, whereby the best Tx/Rx codeword pair w_(t)(S_(r), m_(t)) and w _(r)(S_(r), n_(r)) for the l-th MPC is acquired; (3) Measuring received signals that correspond to codeword pairs w_(r)(S_(r),n_(r)+n) and w_(t)(S_(t),m_(t)+m), where m and n are in range of {−1,0,1}, to obtain nine virtual MPCs for the l-th real MPC, and updating the virtual channel H_(fd) according to H _(fd) =H _(fd) +y _(m)(m,n)w _(r)(S _(r) ,n _(r) +n)w _(t)(S _(t) ,m _(t) +m)^(H) for all permutations of m and n where y_(m)(m,n) is the measured value of the corresponding received signal,
 4. The method of channel estimation of claim 3, wherein the SR step comprises: (a) calculating reduced Rx candidate antenna weight vectors Ā_(r) and reduced Tx candidate antenna weight vectors Ā_(t) according to ${{\overset{\_}{A}}_{r} = \left\lbrack {\left\lbrack {a_{r}\left( {{\hat{\theta}}_{1} - \frac{2}{N_{r}} + \frac{2k}{{KN}_{r}}} \right)} \right\rbrack_{{k = 0},1,\mspace{11mu} \ldots \mspace{11mu},{2K}},\left\lbrack {a_{r}\left( {{\hat{\theta}}_{2} - \frac{2}{N_{r}} + \frac{2k}{{KN}_{r}}} \right)} \right\rbrack_{{k = 0},1,\mspace{11mu} \ldots \mspace{11mu},{2K}},{\ldots \mspace{14mu}\left\lbrack {a_{r}\left( {{\hat{\theta}}_{L} - \frac{2}{N_{r}} + \frac{2k}{{KN}_{r}}} \right)} \right\rbrack}_{{k = 0},1,\mspace{11mu} \ldots \mspace{11mu},{2K}}} \right\rbrack},{and}$ ${{\overset{\_}{A}}_{t} = \left\lbrack {\left\lbrack {a_{t}\left( {{\hat{\psi}}_{1} - \frac{2}{N_{t}} + \frac{2k}{{KN}_{t}}} \right)} \right\rbrack_{{k = 0},1,\mspace{11mu} \ldots \mspace{11mu},{2K}},\left\lbrack {a_{t}\left( {{\hat{\psi}}_{2} - \frac{2}{N_{t}} + \frac{2k}{{KN}_{t}}} \right)} \right\rbrack_{{k = 0},1,\mspace{11mu} \ldots \mspace{11mu},{2K}},{\ldots \mspace{14mu}\left\lbrack {a_{t}\left( {{\hat{\psi}}_{L} - \frac{2}{N_{t}} + \frac{2k}{{KN}_{t}}} \right)} \right\rbrack}_{{k = 0},1,\mspace{11mu} \ldots \mspace{11mu},{2K}}} \right\rbrack},\mspace{20mu} {where}$ $\mspace{20mu} {{{\hat{\theta}}_{} = {{- 1} + \frac{{2\; n_{r\; }} - 1}{N_{r}}}},{{\hat{\psi}}_{} = {{- 1} + \frac{{2\; m_{t\; }} - 1}{N_{t}}}},{ = 1},2,\ldots \mspace{14mu},L,}$ m_(tl) and n_(rl) respectively denote the indexes of the best Tx/Rx codeword pair acquired for the l-th MPC, ${{a_{r}(\theta)} = {\frac{1}{\sqrt{N_{r}}}\left\lbrack {e^{j\; \pi \; 0\; \theta},e^{j\; \pi \; 1\; \theta},\ldots \mspace{14mu},e^{j\; \pi \; {({N_{t} - 1})}\theta}} \right\rbrack}^{T}},{{a_{t}(\psi)} = {\frac{1}{\sqrt{N_{t}}}\left\lbrack {e^{j\; \pi \; 0\psi},e^{j\; \pi \; 1\psi},\ldots \mspace{14mu},e^{j\; \pi \; {({N_{t} - 1})}\psi}} \right\rbrack}^{T}},$ K is an over-sampling factor; (b) solving $\underset{\lambda_{},\theta_{L},\psi_{}}{minimize}{{{{vec}\left( H_{fd} \right)} - {\left( {\overset{\_}{A_{t}^{*}} \otimes \overset{\_}{A_{r}}} \right){{vec}(\Sigma)}}}}_{2}$ subject  to  vec(Σ)₀ = L, where ⊗ is the Kronecker product, the superscript * denotes conjugate, to obtain values of channel coefficients λ_(t), angles of arrival θ_(t) and angles of departure ψ_(l); and (c) calculating channel matrix H by H=Ā_(r)ΣĀ_(t) ^(H), where Σ is a sparse matrix with every column and every row thereof having at most one nonzero element and with the nonzero elements corresponding to the channel coefficients λ_(l), and the superscript H denotes conjugate transpose.
 5. The method of channel estimation of claim 4, wherein an orthogonal matching pursuit (OMP) algorithm is used to solve the problem in step (b).
 6. The method of channel estimation of claim 1, wherein during the VMA step four virtual MPCs are acquired for each real MPC.
 7. The method of channel estimation of claim 4, wherein the problem in step (b) is solved subject to vec(Σ)||₀=κL instead of vec(Σ)||₀=L, assuming there are κ adjacent MPCs with very close angles of arrival (AoAs) and angles of departure (AoDs) within each cluster.
 8. The method of channel estimation of claim 1, wherein the transmitter codebook and the receiver codebook are each a uniform planar array (UPA) codebook based on two uniform linear array (ULA) codebooks.
 9. The method of channel estimation of claim 8, wherein the UPA codebook has N_(x) and N_(y) antennas along x and y axes, respectively, both N_(x) and N_(y) being integer powers of 2, and the n_(x) and n_(y)-th (along x and y axes, respectively) codeword in the k-th layer of the UPA codebook, denoted as w_(P)(k,n_(x),n_(y)) is expressed as w _(P)(k,n _(x) ,n _(y))=w _(x)(k,n _(x))⊗w _(y)(k,n _(y)), where ⊗ is the Kronecker product, w_(x)(k,n_(x)) is the n_(x)-th codeword in the k-th layer of a ULA codebook with N_(x) antennas, while w_(y)(k,n_(y)) is the n_(y)-th codeword in the k-th layer of a ULA codebook with N_(y) antennas.
 10. The method of channel estimation of claim 1, wherein the transmitter includes a digital baseband and an RF phased array, the RF phased array including an RF chain and N_(t) transmitting antenna branches each having a phase shifter connected to the RF chain, a power amplifier connected to the phase shifter, and one of said N_(t) antennas connected to the power amplifier; and the receiver includes an RF phased array and a digital baseband, the RF phased array including an RF chain, an adder having an output end connected to the RF chain, and N_(r) receiving antenna branches each having one of said N_(r) antennas, a low noise amplifier connected to the antenna, a phase shifter connected between the low noise amplifier and an input end of the adder,
 11. The method of channel estimation of claim 10, wherein the digital baseband of the receiver comprises a baseband signal detector, a beam controller, and said processor of the receiver, wherein the processor controls the baseband signal detector to detect the received signal and controls the beam controller to generate an Rx codeword for the RF phased array of the receiver.
 12. The method of channel estimation of claim 10, wherein the digital baseband of the transmitter comprises a controller, a baseband signal generator, and a beam controller, wherein the controller controls the baseband signal generator to generate a baseband signal and controls the beam controller to generate a Tx codeword for the RF phased array of the transmitter.
 13. The method of channel estimation of claim 1, wherein the processor of the receiver is a computer configured with software and memory for processing the measured values of received signals.
 14. The method of channel estimation of claim 13, wherein the SR step is performed by the computer configured with software and memory for performing the SR step.
 15. The codebook for the hierarchical search in the method of channel estimation of claim 1, wherein: the codebook is a hierarchical codebook of (log₂ N+1) layers having 2^(k) codewords w(k, j), j=1,2, . . . , 2^(k), in the k-th layer, where N=N_(r) for the receiver codebook and N=N_(t) for the transmitter codebook, k=0,1,2, . . . , log₂ N; each codeword in the k-th layer of the hierarchical codebook has S_(k) sub-arrays, each sub-array covering N_(S)=N/S_(k) antennas, where S_(k)=2^(┌(log) ² ^(N−k)/2┐) and ┌.┐ denotes coil integer operation; and the hierarchical codebook is constructed according to the following steps: (a) for k=0,1,2, . . . , log₂ N, setting the first codeword in the k-th layer w(k,1) according to ${\left\lbrack {w\left( {k,1} \right)} \right\rbrack_{{{{({m - 1})}N_{s}} + 1}:{mN}_{s}} = {\sqrt{\frac{N_{s}}{N}}e^{j\; \rho_{m}}{a\left( {N_{s},\omega_{m}} \right)}}},{m = 1},2,\ldots \mspace{14mu},S_{k},{where}$ ρ_(m) = −π m(N_(s) − 1)Δ/2 − π N_(s)m(m − 1)Δ/2. ${\Delta = {2^{1 - k}/S_{k}}},{{a\left( {N_{s},\omega_{m\;}} \right)} = {\frac{1}{\sqrt{N_{s}}}\left\lbrack {e^{j\; \pi \; 0\; \omega_{m}},e^{j\; \pi \; 1\; \omega_{m}},\ldots \mspace{14mu},e^{j\; \pi \; {({N_{s} - 1})}\; \omega_{m}}} \right\rbrack}^{T}},{and}$ ${\omega_{m} = {{- 1} + {\frac{{2m} - 1}{2}\Delta}}};$ (b) for k=1,2, . . . , log₂ N, setting other codewords in the k-th layer according to ${{w\left( {k,n} \right)} = {{w\left( {k,1} \right)}{^\circ}\sqrt{N}{a\left( {N,\frac{{2n} - 2}{2^{k}}} \right)}}},{n = 2},3,\ldots \mspace{14mu},2^{k},$ where ° is the entry-wise product. 